Frameworks:
ParFUM - Parallel Framework for Unstructured Meshing
The ParFUM framework makes it easy to write adaptive parallel programs that utilize unstructured meshes. Programs can be written in Fortran90, C, or C++. ParFUM is the successor to FEM. ParFUM is designed to allow for mesh modification, including refinement and coarsening.
Using the ParFUM framework also allows you to take advantage of all the features of CHARM++, including run-time instrumented load balancing, performance monitoring and visualization, and checkpoint/restart, with no additional effort.
A parallel ParFUM application written using the ParFUM framework closely resembles a sequential program. The difference is that in the ParFUM framework, the user's main subroutine operates on one of the many "chunks" of the unstructured mesh. These chunks are created from the serial mesh using, for example, the Metis graph partitioning library.
The only other calls needed by an ParFUM framework program are to:
The framework allows you to easily visualize the results of an ongoing simulation. See the NetFEM page for details.
The framework currently targets explicit codes; although some implicit solvers, such as the conjugate gradient method, can also be applied. We are working to add better support for parallel implicit solvers.
Using the ParFUM framework also allows you to take advantage of all the features of CHARM++, including run-time instrumented load balancing, performance monitoring and visualization, and checkpoint/restart, with no additional effort.
A parallel ParFUM application written using the ParFUM framework closely resembles a sequential program. The difference is that in the ParFUM framework, the user's main subroutine operates on one of the many "chunks" of the unstructured mesh. These chunks are created from the serial mesh using, for example, the Metis graph partitioning library.
The only other calls needed by an ParFUM framework program are to:
- Register data fields that need to be communicated between chunks (for example, nodal attributes)
- Trigger an "update" of these shared data fields across processors (for example, to share nodal forces before a position update)
- Reduce a value across the machine (for example, to check convergence criteria or global energy)
The framework allows you to easily visualize the results of an ongoing simulation. See the NetFEM page for details.
The framework currently targets explicit codes; although some implicit solvers, such as the conjugate gradient method, can also be applied. We are working to add better support for parallel implicit solvers.
People
Papers/Talks
13-16
2013
[Paper]
[Paper]
Parallel Science and Engineering Applications: The Charm++ Approach [Book 2013]
08-15
2009
[Paper]
[Paper]
Parallel Simulations of Dynamic Fracture Using Extrinsic Cohesive Elements [J. Sci. Comp. 2009]
08-13
2008
[Paper]
[Paper]
A Case Study in Tightly Coupled Multi-paradigm Parallel Programming [LCPC 2008]
05-26
2005
[Poster]
[Poster]
Speeding Up Parallel Simulation with Automatic Load Balancing [PPL Poster 2005]
05-14
2006
[Paper]
[Paper]
ParFUM: A Parallel Framework for Unstructured Meshes for Scalable Dynamic Physics Applications [Engineering with Computers 2006]
00-01
2000
[Paper]
[Paper]
A Parallel Framework for Explicit FEM [HiPC 2000]
98-09
1998
[Paper]
[Paper]
Programming Languages for CSE: The State of the Art [IEEE Computational Science and Engineering 1998]